from typing import List
from datetime import datetime
from pathlib import Path
from fastapi import BackgroundTasks

class Prediction:
    def _save_predictions(
            self,
            predictions: List,
            future_timestamps: List[str],
            file_name: str,
            bg: BackgroundTasks
    ) -> str:
        """保存预测结果并添加清理任务"""
        # 提取原始文件名（不含扩展名）
        original_name = Path(file_name).stem
        
        # 使用当前时间作为预测时间戳
        current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
        
        # 如果原始文件名包含时间戳，则替换为当前时间
        if '_20' in original_name:  # 假设时间戳格式为 _YYYYMMDD_HHMMSS
            # 分割文件名，找到时间戳部分
            parts = original_name.split('_')
            for i in range(len(parts)):
                if parts[i].isdigit() and len(parts[i]) == 8 and i+1 < len(parts) and parts[i+1].isdigit() and len(parts[i+1]) == 6:
                    # 找到时间戳部分，替换为当前时间
                    parts[i] = current_time.split('_')[0]
                    parts[i+1] = current_time.split('_')[1]
                    break
            
            # 重新组合文件名
            new_name = '_'.join(parts)
            file_path = self.tmp_dir / f"{new_name}.{self.config.export_format}"
        else:
            # 如果没有找到时间戳格式，则简单地添加当前时间
            file_path = self.tmp_dir / f"{original_name}_prediction_{current_time}.{self.config.export_format}"

        # 其余代码保持不变... 